﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HttpRequester.RequestMakers.Base;
using BotvaBot.RequestChains.Base;
using HttpRequester;

namespace BotvaBot.BusinessLayer.RequestChainItems.Factory
{
    public interface IChainItem<TRequester, TChain, TContext>
        where TRequester : RequestManagerPlaneHtml
        where TChain : RequestChain<TContext>
        where TContext : RequestChainContext, new()
    {
        TChain Chain { get; set; }
        TRequester Requester { get; set; }
        TContext Context { get; set; }

        bool? ProcessFlag { get; set; }

        bool IsContextValid();
        void PrepareRequest();
        bool IsRequestValid();
        void DoRequest();
        bool IsResponseValid();
        void UpdateContext();

//Chain.LastContent = Requester.PageContent;
//Chain.LoadInputCookies(Requester.OutputCookies);
    }
}
